package com.lanou3g.code0412.inter;

/**
 * Created by dllo on 18/4/12.
 */
//定义接口  与定义类一样
    //区别是class关键字 改为interface关键字

public interface USB {
    //接口与类一样,可以写属性,可以写方法
    //但是不同的是,接口中只能写
    //常量  和  抽象方法
    //由于接口里只能出现常量
    //所以定义常量时 可以不写public static final
    public static final String VOLTAGE="5V";
    //接口只能有public的抽象方法
    //不能够有普通方法,它也不是类,也没有构造方法
    //所以 方法的public abstract 可以不写
    public abstract String sendData();

    public abstract void receiveData(String data);
}
/*
接口和抽象类的区别
1.语法角度:
抽象类本质上还是一个类,在使用时,抽象类中可以存在普通方法和成员变量
而接口是单独的类型,在使用时 只能存在静态常量和抽象方法
1.2接口中所有的方法可以不写adstract也是抽象方法  而抽象类中的抽象方法,必须写adstract关键字
1.3抽象类必须被继承  才能够使用,而接口必须被实现才能被使用
一个类只能继承一个类,但是可以实现多个接口
2.理解角度
当我们是有抽象类的时候  通常想表达一种:" is a "的含义 ,即当前类和被继承类之间存在着
概念上的"父子关系"
而使用接口的时候,通常是想表达一种"like a "的含义,即只是确定当前类具有某种能力(具有某些方法),
而没有概念上的"父子关系"
3.实用角度
当一个类有确切的父子关系时,我们使用抽象类,否则使用接口(即使不确定是否有确切的父子关系,
我们会优先考虑接口,毕竟只能继承一次);
如果一个类中有实体方法,那么我们只能使用抽象类
 */
